QT QPlainTextEdit复制粘贴功能的实现 |
您所在的位置:网站首页 › qt 剪贴板 › QT QPlainTextEdit复制粘贴功能的实现 |
我最近做了一个QT mindmap的项目,用了一下QPlainTextEdit,但是出现了不能复制的情况。实际上只需要舰艇Ctrl+c和Ctrl+x按键事件就行了。我的核心代码函数为: void keyPressEvent(QKeyEvent* ev) Q_DECL_OVERRIDE { update(); if (isReadOnly() && ev->key() == Qt::Key_Space) { //禁止按空格键后编辑功能 setReadOnly(true); } else if (!isReadOnly() && ev->key() == Qt::Key_Escape) { setReadOnly(true); } else if (!isReadOnly() && ev->key() == Qt::Key_Tab) { setReadOnly(true); m_parent->keyPressEvent(ev); } else if (!isReadOnly() && ev->key() == Qt::Key_Return && (ev->modifiers() & Qt::ShiftModifier) == 0) { setReadOnly(true); m_parent->keyPressEvent(ev); }else if((ev->key() == Qt::Key_C || ev->key() == Qt::Key_X) && ev->modifiers() == Qt::ControlModifier){ //复制粘贴 copy(); } else if (!isReadOnly()) { QPlainTextEdit::keyPressEvent(ev); } else { m_parent->keyPressEvent(ev); } }核心代码为: else if((ev->key() == Qt::Key_C || ev->key() == Qt::Key_X) && ev->modifiers() == Qt::ControlModifier){ copy(); }然后再复制QPlainTextEdit上的内容就能复制成功了。 参考文献[1].qtQPlainTextEdit复制内容粘贴到excel中的问题. http://blog.sina.com.cn/s/blog_6b2dd2620102yvyp.html |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |